package com.fbs.wowo.util.common;

import org.apache.shiro.authc.UsernamePasswordToken;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;


public class ComUtils {

    /**
     * 获取当前登录人的手机号
     * @return
     */
    public static String getTel() {
        UsernamePasswordToken token=new UsernamePasswordToken();
        String tel = token.getUsername();
        return tel;
    }


    /**
     * 生成UUID
     * @return
     */
    public static String getUUID(){
        String s = Generator.generateId();
        return s;
    }

    /**
     * 获取当前时间
     * @return
     */
    public static String getNewDate(){
        Date currentTime = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String newDate = formatter.format(currentTime);
        return newDate;
    }

    /**
     * 获取现在时间
     *
     * @return 返回短时间字符串格式yyyy-MM-dd
     */
    public static String getNowDate() {
        Date currentTime = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
        String dateString = formatter.format(currentTime);
        return dateString;
    }



    /**
     * 取得再编辑后的文件名
     * @param fileName
     * @return
     */
    public static String getEditFileName(String fileName) {
        // 获取文件的后缀名
        String suffixName = fileName.substring(fileName.lastIndexOf("."));
        // 解决中文问题，liunx下中文路径，图片显示问题
        fileName = UUID.randomUUID() + suffixName;
        return fileName;
    }

    /**
     * 上传文件
     * @param multipartFile
     * @param filePath
     * @return
     */
    public static boolean uploadFile(MultipartFile multipartFile, String filePath) {
        File dest = new File(filePath);
        // 检测是否存在目录
        if (!dest.getParentFile().exists()) {
            dest.getParentFile().mkdirs();
        }
        try {
            multipartFile.transferTo(dest);
            return true;
        } catch (IllegalStateException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return false;
    }

    /**
     * 删除服务器上的文件
     * @param filePath
     * @return
     */
    public static boolean deleteServerFile(String filePath){
        boolean delete_flag = false;
        File file = new File(filePath);
        if (!file.exists()) {
            delete_flag = true;
        }else if (file.isFile() && file.delete()) {
            delete_flag = true;
        }
        return delete_flag;
    }

}
